(define tolerance 0.00001)

(define (close-enough? v1 v2)
  (< (abs (- v1 v2)) tolerance))

(define (iteractive-improve  (close-enough? improve)
                             (lambda (guess) 
                               (let next (improve guess))
                               (cond ((close-enough? guess next) next)
                                     (else ((iteractive-improve close-enough? guess) next))))))
